home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / doc / libnet-dbus-perl / examples / example-client-async.pl < prev    next >
Encoding:
Perl Script  |  2008-02-20  |  822 b   |  42 lines

  1. #/usr/bin/perl
  2.  
  3. use warnings;
  4. use strict;
  5.  
  6. use Net::DBus;
  7. use Net::DBus::Reactor;
  8. use Net::DBus::Callback;
  9. use Net::DBus::Annotation qw(:call);
  10.  
  11. my $bus = Net::DBus->session();
  12.  
  13. my $service = $bus->get_service("org.designfu.SampleService");
  14. my $object = $service->get_object("/SomeObject");
  15.  
  16. print "Doing async call\n";
  17. my $reply = $object->HelloWorld(dbus_call_async, "Hello from example-client.pl!");
  18.  
  19. my $r = Net::DBus::Reactor->main;
  20.  
  21. sub all_done {
  22.     my $reply = shift;
  23.     my $list = $reply->get_result;
  24.     print "[", join(", ", map { "'$_'" } @{$list}), "]\n";
  25.  
  26.     $r->shutdown;
  27. }
  28.  
  29. print "Setting notify\n";
  30. $reply->set_notify(\&all_done);
  31.  
  32. sub tick {
  33.     print "Tick-tock\n";
  34. }
  35.  
  36.  
  37. print "Adding timer\n";
  38. $r->add_timeout(500, Net::DBus::Callback->new(method => \&tick));
  39.  
  40. print "Entering main loop\n";
  41. $r->run;
  42.